package org.stone.project.cacheInterface.service;

import org.stone.project.common.pojo.dto.SysDictDataMeta;

import java.util.List;

/**
 * 字典工具类
 */
public interface DictCacheService{
    /**
     * 设置字典缓存
     *
     * @param key 参数键
     * @param dictDatas 字典数据列表
     */
    void setDictCache(String key, List<SysDictDataMeta> dictDatas);

    /**
     * 获取字典缓存
     *
     * @param key 参数键
     * @return dictDatas 字典数据列表
     */
    List<SysDictDataMeta> getDictCache(String key);

    /**
     * 通过值获取列表
     * @param dictTypeKey
     * @param dictValue
     * @return
     */
    SysDictDataMeta getCacheByDictTypeAndDictValue(String dictTypeKey,String dictValue);


    /**
     * 通过类别label获取
     * @param dictTypeKey
     * @param label
     * @return
     */
    SysDictDataMeta getCacheByDictTypeAndDictLabel(String dictTypeKey,String label);

    /**
     * 删除指定字典缓存
     *
     * @param key 字典键
     */
    void deleteObject(String key);

    /**
     * 设置cache key
     * @param keyPrefix
     */
    void clearDictCache(String keyPrefix);
}
